//package io.renren.common.utils;
//
//import cn.hutool.core.util.ArrayUtil;
//import cn.hutool.core.util.StrUtil;
//import com.fasterxml.jackson.core.type.TypeReference;
//import com.fasterxml.jackson.databind.ObjectMapper;
//
//import java.util.ArrayList;
//import java.util.List;
//
///**
// * JSON 工具类
// *
// * @author Mark sunlightcs@gmail.com
// */
//public class JsonUtils {
//    private static final ObjectMapper objectMapper = new ObjectMapper();
//
//    public static String toJsonString(Object object) {
//        try {
//            return objectMapper.writeValueAsString(object);
//        } catch (Exception e) {
//            throw new RuntimeException(e);
//        }
//    }
//
//    public static <T> T parseObject(String text, Class<T> clazz) {
//        if (StrUtil.isEmpty(text)) {
//            return null;
//        }
//        try {
//            return objectMapper.readValue(text, clazz);
//        } catch (Exception e) {
//            throw new RuntimeException(e);
//        }
//    }
//
//    public static <T> T parseObject(byte[] bytes, Class<T> clazz) {
//        if (ArrayUtil.isEmpty(bytes)) {
//            return null;
//        }
//        try {
//            return objectMapper.readValue(bytes, clazz);
//        } catch (Exception e) {
//            throw new RuntimeException(e);
//        }
//    }
//
//    public static <T> T parseObject(String text, TypeReference<T> typeReference) {
//        try {
//            return objectMapper.readValue(text, typeReference);
//        } catch (Exception e) {
//            throw new RuntimeException(e);
//        }
//    }
//
//    public static <T> List<T> parseArray(String text, Class<T> clazz) {
//        if (StrUtil.isEmpty(text)) {
//            return new ArrayList<>();
//        }
//        try {
//            return objectMapper.readValue(text, objectMapper.getTypeFactory().constructCollectionType(List.class, clazz));
//        } catch (Exception e) {
//            throw new RuntimeException(e);
//        }
//    }
//
//}
